import cv2
import numpy as np
import os
import xlwt  # xlwt模块只能写xls文件，不能写xlsx文件(写xlsx程序不会报错，但最后文件无法直接打开，会报错)


TYPE = "V"  # V  Square   singleBevel   Lap
path = 'F:\\MVS_Data\\' + TYPE  #
save_path = 'F:\\MVS_Data\\' + TYPE + "_Point_PLOT "

if os.path.exists(save_path) == False:
    os.makedirs(save_path)

# 用来保存所有点的信息
Inital_point_x = []
Inital_point_y = []
sum_points = []

for i in range(54):
    # 读取图像路径下的 每一个 Vi_0.png
    # 要将 同一个类型的所有图像，都放到同一个文件夹里
    img = cv2.imread(path + "\\" + TYPE + "{}_0.png".format(i))
    name = str(i)
    a = []
    cv2.namedWindow("image")
    # 鼠标点击 回调事件
    cv2.setMouseCallback("image", on_EVENT_LBUTTONDOWN)
    cv2.imshow("image", img)
    cv2.waitKey(0)
    cv2.destroyAllWindows()
    # 往保存目录里 保存鼠标标记后的图片
    cv2.imwrite(save_path + "\\" + TYPE + "{}_roi.png".format(i), img)
    print(i, "/54")

print(Inital_point_x)
print(Inital_point_y)

name = TYPE + '_POINT_UoA_Manual'
workbook = xlwt.Workbook(encoding='ascii')  # 新建一个工作簿
worksheet = workbook.add_sheet('data')  # 新建一个工作表

for i in range(len(Inital_point_x)):
    # 前两个参数对应(第i行,第j列)
    worksheet.write(i, 0, str(Inital_point_x[i]))  # 不带样式的写入
    worksheet.write(i, 1, str(Inital_point_y[i]))  # 不带样式的写入
    worksheet.write(i, 2, str(i))  # 不带样式的写入

# 默认保存在py文件相同路径下，如果该路径下有相同文件，会被新创建的文件覆盖，即xlwt不能修改文件
workbook.save(name + '.xls')  # 保存文件
